/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.admanager.piadladmanagement.plugin.piadladmanagement.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.admanager.piadladmanagement.plugin.piadladmanagement.util.PiadladmanagementAdapterFactory;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class PiadladmanagementItemProviderAdapterFactory extends PiadladmanagementAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection supportedTypes = new ArrayList();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public PiadladmanagementItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PElementItemProvider pElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPElementAdapter() {
		if (pElementItemProvider == null) {
			pElementItemProvider = new PElementItemProvider(this);
		}

		return pElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PRole} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PRoleItemProvider pRoleItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PRole}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPRoleAdapter() {
		if (pRoleItemProvider == null) {
			pRoleItemProvider = new PRoleItemProvider(this);
		}

		return pRoleItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PMultiplicity} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PMultiplicityItemProvider pMultiplicityItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PMultiplicity}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPMultiplicityAdapter() {
		if (pMultiplicityItemProvider == null) {
			pMultiplicityItemProvider = new PMultiplicityItemProvider(this);
		}

		return pMultiplicityItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConstraint} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PConstraintItemProvider pConstraintItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConstraint}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPConstraintAdapter() {
		if (pConstraintItemProvider == null) {
			pConstraintItemProvider = new PConstraintItemProvider(this);
		}

		return pConstraintItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PCompositeElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PCompositeElementItemProvider pCompositeElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PCompositeElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPCompositeElementAdapter() {
		if (pCompositeElementItemProvider == null) {
			pCompositeElementItemProvider = new PCompositeElementItemProvider(this);
		}

		return pCompositeElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PSimpleElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PSimpleElementItemProvider pSimpleElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PSimpleElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPSimpleElementAdapter() {
		if (pSimpleElementItemProvider == null) {
			pSimpleElementItemProvider = new PSimpleElementItemProvider(this);
		}

		return pSimpleElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PComponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PComponentItemProvider pComponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PComponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPComponentAdapter() {
		if (pComponentItemProvider == null) {
			pComponentItemProvider = new PComponentItemProvider(this);
		}

		return pComponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConnector} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PConnectorItemProvider pConnectorItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConnector}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPConnectorAdapter() {
		if (pConnectorItemProvider == null) {
			pConnectorItemProvider = new PConnectorItemProvider(this);
		}

		return pConnectorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PComponentPort} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PComponentPortItemProvider pComponentPortItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PComponentPort}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPComponentPortAdapter() {
		if (pComponentPortItemProvider == null) {
			pComponentPortItemProvider = new PComponentPortItemProvider(this);
		}

		return pComponentPortItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConnectorRole} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PConnectorRoleItemProvider pConnectorRoleItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.PConnectorRole}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPConnectorRoleAdapter() {
		if (pConnectorRoleItemProvider == null) {
			pConnectorRoleItemProvider = new PConnectorRoleItemProvider(this);
		}

		return pConnectorRoleItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.CBAPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CBAPatternItemProvider cbaPatternItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.CBAPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createCBAPatternAdapter() {
		if (cbaPatternItemProvider == null) {
			cbaPatternItemProvider = new CBAPatternItemProvider(this);
		}

		return cbaPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Element} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ElementItemProvider elementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Element}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createElementAdapter() {
		if (elementItemProvider == null) {
			elementItemProvider = new ElementItemProvider(this);
		}

		return elementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.CompositeElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompositeElementItemProvider compositeElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.CompositeElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createCompositeElementAdapter() {
		if (compositeElementItemProvider == null) {
			compositeElementItemProvider = new CompositeElementItemProvider(this);
		}

		return compositeElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.SimpleElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SimpleElementItemProvider simpleElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.SimpleElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createSimpleElementAdapter() {
		if (simpleElementItemProvider == null) {
			simpleElementItemProvider = new SimpleElementItemProvider(this);
		}

		return simpleElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Component} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentItemProvider componentItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Component}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createComponentAdapter() {
		if (componentItemProvider == null) {
			componentItemProvider = new ComponentItemProvider(this);
		}

		return componentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Connector} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectorItemProvider connectorItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Connector}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createConnectorAdapter() {
		if (connectorItemProvider == null) {
			connectorItemProvider = new ConnectorItemProvider(this);
		}

		return connectorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Port} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortItemProvider portItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Port}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createPortAdapter() {
		if (portItemProvider == null) {
			portItemProvider = new PortItemProvider(this);
		}

		return portItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Architecture} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArchitectureItemProvider architectureItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Architecture}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createArchitectureAdapter() {
		if (architectureItemProvider == null) {
			architectureItemProvider = new ArchitectureItemProvider(this);
		}

		return architectureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Connection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectionItemProvider connectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Connection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createConnectionAdapter() {
		if (connectionItemProvider == null) {
			connectionItemProvider = new ConnectionItemProvider(this);
		}

		return connectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Unification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnificationItemProvider unificationItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Unification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createUnificationAdapter() {
		if (unificationItemProvider == null) {
			unificationItemProvider = new UnificationItemProvider(this);
		}

		return unificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Relay} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RelayItemProvider relayItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.Relay}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createRelayAdapter() {
		if (relayItemProvider == null) {
			relayItemProvider = new RelayItemProvider(this);
		}

		return relayItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.MappingRoot} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MappingRootItemProvider mappingRootItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.MappingRoot}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createMappingRootAdapter() {
		if (mappingRootItemProvider == null) {
			mappingRootItemProvider = new MappingRootItemProvider(this);
		}

		return mappingRootItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ComponentMapping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentMappingItemProvider componentMappingItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ComponentMapping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createComponentMappingAdapter() {
		if (componentMappingItemProvider == null) {
			componentMappingItemProvider = new ComponentMappingItemProvider(this);
		}

		return componentMappingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ConnectorMapping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectorMappingItemProvider connectorMappingItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ConnectorMapping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createConnectorMappingAdapter() {
		if (connectorMappingItemProvider == null) {
			connectorMappingItemProvider = new ConnectorMappingItemProvider(this);
		}

		return connectorMappingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ComponentPortMapping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentPortMappingItemProvider componentPortMappingItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ComponentPortMapping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createComponentPortMappingAdapter() {
		if (componentPortMappingItemProvider == null) {
			componentPortMappingItemProvider = new ComponentPortMappingItemProvider(this);
		}

		return componentPortMappingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ConnectorRoleMapping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectorRoleMappingItemProvider connectorRoleMappingItemProvider;

	/**
	 * This creates an adapter for a {@link org.admanager.piadladmanagement.plugin.piadladmanagement.ConnectorRoleMapping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter createConnectorRoleMappingAdapter() {
		if (connectorRoleMappingItemProvider == null) {
			connectorRoleMappingItemProvider = new ConnectorRoleMappingItemProvider(this);
		}

		return connectorRoleMappingItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void dispose() {
		if (pElementItemProvider != null) pElementItemProvider.dispose();
		if (pRoleItemProvider != null) pRoleItemProvider.dispose();
		if (pMultiplicityItemProvider != null) pMultiplicityItemProvider.dispose();
		if (pConstraintItemProvider != null) pConstraintItemProvider.dispose();
		if (pCompositeElementItemProvider != null) pCompositeElementItemProvider.dispose();
		if (pSimpleElementItemProvider != null) pSimpleElementItemProvider.dispose();
		if (pComponentItemProvider != null) pComponentItemProvider.dispose();
		if (pConnectorItemProvider != null) pConnectorItemProvider.dispose();
		if (pComponentPortItemProvider != null) pComponentPortItemProvider.dispose();
		if (pConnectorRoleItemProvider != null) pConnectorRoleItemProvider.dispose();
		if (cbaPatternItemProvider != null) cbaPatternItemProvider.dispose();
		if (elementItemProvider != null) elementItemProvider.dispose();
		if (compositeElementItemProvider != null) compositeElementItemProvider.dispose();
		if (simpleElementItemProvider != null) simpleElementItemProvider.dispose();
		if (componentItemProvider != null) componentItemProvider.dispose();
		if (connectorItemProvider != null) connectorItemProvider.dispose();
		if (portItemProvider != null) portItemProvider.dispose();
		if (architectureItemProvider != null) architectureItemProvider.dispose();
		if (connectionItemProvider != null) connectionItemProvider.dispose();
		if (unificationItemProvider != null) unificationItemProvider.dispose();
		if (relayItemProvider != null) relayItemProvider.dispose();
		if (mappingRootItemProvider != null) mappingRootItemProvider.dispose();
		if (componentMappingItemProvider != null) componentMappingItemProvider.dispose();
		if (connectorMappingItemProvider != null) connectorMappingItemProvider.dispose();
		if (componentPortMappingItemProvider != null) componentPortMappingItemProvider.dispose();
		if (connectorRoleMappingItemProvider != null) connectorRoleMappingItemProvider.dispose();
	}

}
